﻿/**
 *   PantallaCargarGuardar: Pantalla que permite cargar y guardar la partida
 *
 *   @see Menu Juego Saboteur
 *   @author 1-DAI IES San Vicente 2010/11
 */

/* --------------------------------------------------
   Parte de Saboteur - Remake
   Versiones hasta la fecha:

   Num.   Fecha       Por / Cambios
   ---------------------------------------------------
   0.11  02-Nov-2010   Nacho
                       Creada la clase, extraida de Menu, para facilitar
                         el reparto de trabajo
 ---------------------------------------------------- */

class PantallaCargarGuardar
{
    ElemGrafico fondoMenu;
    Fuente fuente;

    public PantallaCargarGuardar(Juego j)
    {
        fondoMenu = new ElemGrafico(
            j.GetCarpetaImagenes() + "fondoMenu.png");
        fuente = new Fuente("FreeSansBold.ttf", 18);
    }


    public void Lanzar()
    {

        bool salirOpciones = false;


        while (!salirOpciones)
        {
            salirOpciones = false;
            Hardware.BorrarPantallaOculta(0, 0, 0); // Borro en negro

            fondoMenu.Dibujar(0, 0);
            Hardware.EscribirTextoOculta(
                 "Cargar/Guardar",
                 300, 40, 0xAA, 0xAA, 0xFF, fuente);
            Hardware.EscribirTextoOculta(
                  "1. Guardar (en pruebas)",
                  400, 110, 0xAA, 0xAA, 0xEE, fuente);
            Hardware.EscribirTextoOculta(
                  "2. Cargar (no disponible)",
                  400, 140, 0xAA, 0xAA, 0xCC, fuente);

            Hardware.EscribirTextoOculta(
                  "Pulsa V para volver",
                  400, 240, 0xAA, 0xAA, 0xCC, fuente);

            Hardware.VisualizarOculta();
            Hardware.Pausa(10);

            if (Hardware.TeclaPulsada(Hardware.TECLA_V))
                salirOpciones = true;

            if (Hardware.TeclaPulsada(Hardware.TECLA_1))
            {
                introducirNombre();
            }

            if (Hardware.TeclaPulsada(Hardware.TECLA_2))
            {

            }
        }
    }

    /// Introduce nombre para record
    public void introducirNombre()
    {
        string nombre = "";
        string temp = "";

        //Pausa para que no se escriban "1"'s por haber elegido anteriormente
        //la opcion
        Hardware.Pausa(250);
        do
        {
            Hardware.BorrarPantallaOculta(0, 0, 0);
            Hardware.EscribirTextoOculta(
               "Introduce el nombre ", 300, 300, 0xAA, 0xAA, 0xAA, fuente);
            Hardware.EscribirTextoOculta(
               " " + nombre + " ", 300, 400, 0xAA, 0xAA, 0xAA, fuente);

            if (Hardware.TeclaPulsada(Hardware.TECLA_A))
            {
                nombre += 'a';
                Hardware.Pausa(100);
            }
            if (Hardware.TeclaPulsada(Hardware.TECLA_B))
            {
                nombre += 'b';
                Hardware.Pausa(100);
            }
            if (Hardware.TeclaPulsada(Hardware.TECLA_C))
            {
                nombre += 'c';
                Hardware.Pausa(100);
            }
            if (Hardware.TeclaPulsada(Hardware.TECLA_D))
            {
                nombre += 'd';
                Hardware.Pausa(100);
            }
            if (Hardware.TeclaPulsada(Hardware.TECLA_E))
            {
                nombre += 'e';
                Hardware.Pausa(100);
            }
            if (Hardware.TeclaPulsada(Hardware.TECLA_F))
            {
                nombre += 'f';
                Hardware.Pausa(100);
            }
            if (Hardware.TeclaPulsada(Hardware.TECLA_G))
            {
                nombre += 'g';
                Hardware.Pausa(100);
            }
            if (Hardware.TeclaPulsada(Hardware.TECLA_H))
            {
                nombre += 'h';
                Hardware.Pausa(100);
            }
            if (Hardware.TeclaPulsada(Hardware.TECLA_I))
            {
                nombre += 'i';
                Hardware.Pausa(100);
            }
            if (Hardware.TeclaPulsada(Hardware.TECLA_J))
            {
                nombre += 'j';
                Hardware.Pausa(100);
            }
            if (Hardware.TeclaPulsada(Hardware.TECLA_K))
            {
                nombre += 'k';
                Hardware.Pausa(100);
            }
            if (Hardware.TeclaPulsada(Hardware.TECLA_L))
            {
                nombre += 'l';
                Hardware.Pausa(100);
            }
            if (Hardware.TeclaPulsada(Hardware.TECLA_M))
            {
                nombre += 'm';
                Hardware.Pausa(100);
            }
            if (Hardware.TeclaPulsada(Hardware.TECLA_N))
            {
                nombre += 'n';
                Hardware.Pausa(100);
            }
            if (Hardware.TeclaPulsada(Hardware.TECLA_O))
            {
                nombre += 'o';
                Hardware.Pausa(100);
            }
            if (Hardware.TeclaPulsada(Hardware.TECLA_P))
            {
                nombre += 'p';
                Hardware.Pausa(100);
            }
            if (Hardware.TeclaPulsada(Hardware.TECLA_Q))
            {
                nombre += 'q';
                Hardware.Pausa(100);
            }
            if (Hardware.TeclaPulsada(Hardware.TECLA_R))
            {
                nombre += 'r';
                Hardware.Pausa(100);
            }
            if (Hardware.TeclaPulsada(Hardware.TECLA_S))
            {
                nombre += 's';
                Hardware.Pausa(100);
            }
            if (Hardware.TeclaPulsada(Hardware.TECLA_T))
            {
                nombre += 't';
                Hardware.Pausa(100);
            }
            if (Hardware.TeclaPulsada(Hardware.TECLA_U))
            {
                nombre += 'u';
                Hardware.Pausa(100);
            }
            if (Hardware.TeclaPulsada(Hardware.TECLA_V))
            {
                nombre += 'v';
                Hardware.Pausa(100);
            }
            if (Hardware.TeclaPulsada(Hardware.TECLA_W))
            {
                nombre += 'w';
                Hardware.Pausa(100);
            }
            if (Hardware.TeclaPulsada(Hardware.TECLA_X))
            {
                nombre += 'x';
                Hardware.Pausa(100);
            }
            if (Hardware.TeclaPulsada(Hardware.TECLA_Y))
            {
                nombre += 'y';
                Hardware.Pausa(100);
            }
            if (Hardware.TeclaPulsada(Hardware.TECLA_Z))
            {
                nombre += 'z';
                Hardware.Pausa(100);
            }
            if (Hardware.TeclaPulsada(Hardware.TECLA_ESP))
            {
                nombre += ' ';
                Hardware.Pausa(100);
            }
            if (Hardware.TeclaPulsada(Hardware.TECLA_1))
            {
                nombre += '1';
                Hardware.Pausa(100);
            }
            if (Hardware.TeclaPulsada(Hardware.TECLA_2))
            {
                nombre += '2';
                Hardware.Pausa(100);
            }
            if (Hardware.TeclaPulsada(Hardware.TECLA_3))
            {
                nombre += '3';
                Hardware.Pausa(100);
            }
            if (Hardware.TeclaPulsada(Hardware.TECLA_4))
            {
                nombre += '4';
                Hardware.Pausa(100);
            }
            if (Hardware.TeclaPulsada(Hardware.TECLA_5))
            {
                nombre += '5';
                Hardware.Pausa(100);
            }
            if (Hardware.TeclaPulsada(Hardware.TECLA_6))
            {
                nombre += '6';
                Hardware.Pausa(100);
            }
            if (Hardware.TeclaPulsada(Hardware.TECLA_7))
            {
                nombre += '7';
                Hardware.Pausa(100);
            }
            if (Hardware.TeclaPulsada(Hardware.TECLA_8))
            {
                nombre += '8';
                Hardware.Pausa(100);
            }
            if (Hardware.TeclaPulsada(Hardware.TECLA_9))
            {
                nombre += '9';
                Hardware.Pausa(100);
            }
            if (Hardware.TeclaPulsada(Hardware.TECLA_0))
            {
                nombre += '0';
                Hardware.Pausa(100);
            }

            //Con la tecla izquierda se borra el ultimo caracter
            if (Hardware.TeclaPulsada(Hardware.TECLA_IZQ))
            {
                temp = "";
                //escribo en temp la varibale que guarda el nombre
                //menos el ultimo caracter
                for (int i = 0; i < (nombre.Length - 1); i++)
                    temp += nombre[i];
                //la variable nombre recibe el valor de temp
                nombre = temp;
                //(Como una frase de una postal)xD
                Hardware.Pausa(100);
            }

            Hardware.VisualizarOculta();

        } while (!Hardware.TeclaPulsada(Hardware.TECLA_ENT));

        // ### TODO: Comprobar que despues de teclear se puede introducir
        //miJuego.GetTablaRecords().IntroducirRecord(nombre, 100);
    }

}

